package config

import (
	"encoding/json"
	"go-tcpFramework-rudy/logger"
	"io/ioutil"
	"log"
	"os"
)

type Config struct {
	Type     string   `json:"type"`
	ID       string   `json:"id"`
	Ipadress string   `json:"ipadress"` //format like ip:port
	Zkserver []string `json:"zkserver"`
}

var gConf *Config

func init() {
	gConf = new(Config)
}
func Configs() *Config {
	if gConf != nil {
		return gConf
	} else {
		return &Config{
			ID:       "gateway",
			Ipadress: "127.0.0.1",
			Zkserver: []string{},
		}
	}
}
func InitConfig(path string) {
	file, err := os.Open(path)
	if err != nil {
		log.Println(err.Error())
		buf, e := json.Marshal(gConf)
		if e != nil {
			log.Println(e.Error())
		}
		e =  ioutil.WriteFile("TcpServConfig.json", buf, os.ModePerm)
		if nil != e {
			logger.LogDebugError(e.Error())
			return
		}
	}
	ret, err := ioutil.ReadAll(file)
	err = json.Unmarshal(ret, gConf)
	if err != nil {
		log.Println(err.Error())
		return
	}
	e := file.Close()
	if nil != e{
		logger.LogDebugError(e.Error())
	}
}
